<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 前端路由：根据url的不同，返回不同的页面或者组件 -->
    <!-- 做页面切换或者页面内容的局部切换 -->

    <!-- 1. 需要有能够改变url的东西，a标签，hash -->
    <p>
      <a href="#home">首页</a> | <a href="#classify">分类页</a> |
      <a href="#mine">我的页</a>
    </p>

    <!-- 2. 需要有一个可以存放切换内容的容器 -->
    <div id="box"></div>

    <script>
      // 3. 需要一个路由表(实际上是一个由对象组成的数组，这个对象需要有url和template两个选项)
      const route = [
        {
          url: "home",
          template: "<div>这是首页</div>",
        },
        {
          url: "classify",
          template: "<div>这是分类页</div>",
        },
        {
          url: "mine",
          template: "<div>这是我的页</div>",
        },
      ];

      // 4. 监听url的hash的改变
      window.addEventListener("hashchange", () => {
        // console.log("hash改变了", location.hash.slice(1));
        const hash = location.hash.slice(1);
        route.forEach((item) => {
          if (item.url === hash) {
            document.querySelector("#box").innerHTML = item.template;
          }
        });
      });
    </script>
  </body>
</html>
